package com.sunyur.tailor.channel.web.outer.inventory.dto;

import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * @Description 商城库存台账请求参数
 * @Author xuhui
 * @Date 2021/6/21 16:20
 * @Version 1.0
 */
@Data
public class InventoryDTO {
    /**
     * 外部主键（自动生成）
     */
    private String outerId;
    /**
     * 公司主体编码
     */
    @NotBlank(message = "公司主体编码不能为空")
    private String purchaserSubjectCode;
    /**
     * 物料编码
     */
    @NotBlank(message = "物料编码不能为空")
    private String materielCode;
    /**
     * 库存组织编码
     */
    @NotBlank(message = "库存组织编码不能为空")
    private String stockOrgCode;
    /**
     * 库存地点编码
     */
    @NotBlank(message = "库存地点编码不能为空")
    private String siteCode;
    /**
     * 税率编码
     */
    @NotBlank(message = "税率编码不能为空")
    private String taxCode;
    /**
     * 税率值，最大为1.00
     */
    @NotNull(message = "税率值不能为空")
    @DecimalMax(value = "1.00", message = "税率值最大为1.00")
    private BigDecimal taxPoint;
    /**
     * 未税价(含税价,接口根据未税价、税率进行计算)
     */
    @NotNull(message = "未税价不能为空")
    private BigDecimal untaxedPrice;
    /**
     * 1--利旧物资,2--库存物资
     */
    @NotNull(message = "物资类型不能为空")
    private Integer materialType;
    /**
     * 操作人编码
     */
    @NotBlank(message = "操作人编码不能为空")
    private String operatorCode;
    /**
     * 资产编码(利旧物资必输)
     */
    private String assetCode;
    /**
     * 使用时间(利旧物资必输)
     */
    private String usedTime;
    /**
     * 库存流水
     */
    @Valid
    private RecordParam recordParam;

}
